/**
 * 校验路径
 * @param {string} path
 * @returns {Boolean}
 */
export function isExternal(path) {
    return /^(https?:|mailto:|tel:)/.test(path)
 }

 /**
 * 校验账号规则
 * 字符串只能包含字母和数字，长度在5到18之间
 * @param {string} str 
 * @returns {boolean}
 */
export function accountValidate(str){
    const reg = /^[a-zA-Z0-9]{5,18}$/;
    return reg.test(str);
}

/**
 * 校验密码规则
 * 密码必须包含多种字符类型（字母、数字、特殊字符）且长度至少为6个字符，不能只包含相同类型的字符
 * @param {string} str 
 * @returns {boolean}
 */
export function passwordValidate(str){
    const reg = /^(?![A-Za-z0-9]+$)(?![A-Za-z]+$)(?![A-Z0-9]+$)(?![a-z0-9]+$)[A-Za-z0-9\\W]{6,}/;
    return reg.test(str);
}

/**
 * 企业名称校验规则
 * 使用正则表达式校验只包含中文字符且不能为空,长度必须在4到36个字符
 * @param {string} str 
 * @returns {boolean}
 */
export function companyNameValidate(str){
    const regex = /^[\u4e00-\u9fa5]{4,36}/; 
    return regex.test(str);
}

/**
 * 不允许为空的值校验
 * @param {string|Array|Map} value 
 * @returns {boolean}
 */
export function isNotNull(value) {
    if (typeof value === 'string') {
        const regex = /^.+$/;
        return regex.test(value);
    } else if (Array.isArray(value)) {
        return value && value.length > 0;
    } else if (value instanceof Map) {
        return value.size > 0;
    }
    return false;
}
